#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

void solve(){
    int n;
    cin >> n;
    vector<vector<int>> adj(n+11);
    for(int i = 0; i < n - 1; i ++){
    	int u,v;
    	cin>>u>>v;
    	adj[u].push_back(v);
    	adj[v].push_back(u);
    }

    vector<int> fa(n + 1);
    queue<pair<int,int>> q;
    q.push({1, -1});
    while(!q.empty()){
    	auto [u,f] = q.front();
    	q.pop();
    	fa[u] = f;
    	for(auto& v : adj[u]){
    		if(v == f)continue;
    		q.push({v, u});
    	}
    }

    vector<int> res;
    int p = n;
    while(fa[p] != -1){
    	res.push_back(p);
    	p = fa[p];
    }
    res.push_back(1);
    reverse(res.begin(),res.end());
    // res.push_back(-1);

    // for(auto x : res){
    // 	cout << x << ' ';
    // }
    // cout << '\n';
    vector<string> ans;
    for(int i = 0;i < res.size() - 1; i ++){
    	// cout << res[i] << '\n';
    	for(auto& v : adj[res[i]]){
    		// cout << v << ' ';
    		if(v == res[i + 1])continue;
    		ans.push_back("2 " + to_string(v));
    	}
    	ans.push_back("1");
    }

    cout << ans.size() << '\n';
    for(auto& x : ans){
    	cout << x << '\n';
    }

    cout << '\n';
}

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    int t=1;
    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}